


public class Radio {
    /**
     * Estado del radio, cuando la variable esta en true esta encendido el radio
     * cuando la variable esta en false esta apagado
     **/
    private boolean estado;
    private Boton[] botones;
    private double estaciones;
    private String frecuencia;
    
    /**
     * Constructor de Clase sin parametros
     * Establece el estado del radio como apagado y inicializa el arreglo de 
     * botones
     */
    public Radio(){
        estado = false;
        botones = new Boton[12];
    }
    
    /**
     * Enciende el radio
     */
    public void encender(){
        estado = true;
    }
    
    /**
     * Apaga el radio
     */
    public void apagar(){
        estado = false;
    }
    
    /**
     * 
     * @param
     */
    public void seleccionarEstacion(double e) throws Exception{
        if(e >= 530 && e <= 1610 && e % 10 == 0){
            estaciones = e;
        }else if (e >= 87.9 && e <= 107.9 && ((e*10) % 2) == 0){
            estaciones = e;
        }else{
            throw new Exception("Estacion invalida.");
        }
    }
    
    public Boton LeerEstacion(int n) throws Exception{
        if(n >= 0 && n <= 12){
            return botones[n];
        }else{
            throw new Exception("No es un numero de boton valido");
        }
    }
    
    public int agregarEstacion(String f, double e) throws Exception{
        int pos = -1;
        for(int i=0;i < botones.length; i++){
            if(botones[i] == null){
                pos = i;
                break;
            }
        }
        
        if(pos != -1 && (f.equals("AM") || f.equals("FM"))){ 
            if((e >= 530 && e <= 1610 && e % 10 == 0) || 
                    (e >= 87.9 && e <= 107.9 && ((e*10) % 2) == 0)){
                botones[pos] = new Boton();
                botones[pos].set(f, e);
            }else{
                throw new Exception("Estacion invalida.");
            }
        }else{
            throw new Exception("Frecuencia Invalida.");
        }
        return pos;
    }
    
    public int modificarEstacion(int pos, String f, double e){
        botones[pos].set(f, e);
        return pos;
    }
}
